Facilitating comprehension in communication systems

ABSTRACT

A method, computer program product, and computer system for receiving information from a first computing device, the information including digital audio data, the information sent to a second computing device by the first computing device. The information is received from the second computing device. A discrepancy between at least a portion of the information received from the first computing device and at least a portion of the information received from the second computing device is identified in real-time. At least a portion of the discrepancy is corrected in real-time for replaying at least the portion of the discrepancy at the second computing device.

TECHNICAL FIELD

This disclosure relates to communication systems.

BACKGROUND

An issue that may arise, e.g., in the field of unified telephony and IPtelephony, is the lack or loss of sound (e.g., speech) quality whencommunicating between two or more users. The lack of quality may be theresult of numerous circumstances, such as, latency, packet loss, noise,hardware and software quality issues, user listening effort, useraccents, and user expectations. In example situations where audioinformation that is crucial for the understanding of the remainder of aconversation is lost or misheard, a lack of quality at any point duringthe conversation may be detrimental.

SUMMARY OF DISCLOSURE

In one implementation, a method, performed by one or more computingdevices, comprises receiving information from a first computing device,the information including digital audio data, the information sent to asecond computing device by the first computing device. The informationis received from the second computing device. A discrepancy between atleast a portion of the information sent by the first computing deviceand at least a portion of the information received from the secondcomputing device is identified in real-time. At least a portion of thediscrepancy is corrected in real-time for replaying at least the portionof the discrepancy at the second computing device.

One or more of the following features may be included. Identifying inreal-time the discrepancy may include comparing at least the portion ofthe information sent by the first computing device with at least theportion of the information received from the second computing device.Identifying in real-time the discrepancy may include identifying inreal-time the discrepancy based upon, at least in part, one or morereceived user options. Correcting in real-time at least the portion ofthe discrepancy may include sending, to the second computing device, areplayable file that includes at least the portion of the discrepancy.Correcting in real-time at least the portion of the discrepancy mayinclude correcting in real-time at least the portion of the discrepancybased upon, at least in part, one or more received user options. Adetermination may be made that at least the portion of the informationfrom a user is received at the second computing device. Anidentification of the user and a time when at least the portion of theinformation is received from the user may be displayed in response tothe determination. Correcting in real-time at least the portion of thediscrepancy may include receiving a selection of the displayedidentification of the user.

In another implementation, a computer program product resides on acomputer readable storage medium that has a plurality of instructionsstored on it. When executed by a processor, the instructions cause theprocessor to perform operations comprising receiving information from afirst computing device, the information including digital audio data,the information sent to a second computing device by the first computingdevice. The information is received from the second computing device. Adiscrepancy between at least a portion of the information sent by thefirst computing device and at least a portion of the informationreceived from the second computing device is identified in real-time. Atleast a portion of the discrepancy is corrected in real-time forreplaying at least the portion of the discrepancy at the secondcomputing device.

One or more of the following features may be included. Identifying inreal-time the discrepancy may include comparing at least the portion ofthe information sent by the first computing device with at least theportion of the information received from the second computing device.Identifying in real-time the discrepancy may include identifying inreal-time the discrepancy based upon, at least in part, one or morereceived user options. Correcting in real-time at least the portion ofthe discrepancy may include sending, to the second computing device, areplayable file that includes at least the portion of the discrepancy.Correcting in real-time at least the portion of the discrepancy mayinclude correcting in real-time at least the portion of the discrepancybased upon, at least in part, one or more received user options.Instructions may further be included for determining that at least theportion of the information from a user is received at the secondcomputing device. Instructions may further be included for identifyingthe user and a time when at least the portion of the information isreceived from the user may be displayed in response to thedetermination. Correcting in real-time at least the portion of thediscrepancy may include receiving a selection of the displayedidentification of the user.

In another implementation, a computing system includes a processor and amemory configured to perform operations comprising receiving informationfrom a first computing device, the information including digital audiodata, the information sent to a second computing device by the firstcomputing device. The information is received from the second computingdevice. A discrepancy between at least a portion of the information sentby the first computing device and at least a portion of the informationreceived from the second computing device is identified in real-time. Atleast a portion of the discrepancy is corrected in real-time forreplaying at least the portion of the discrepancy at the secondcomputing device.

One or more of the following features may be included. Identifying inreal-time the discrepancy may include comparing at least the portion ofthe information sent by the first computing device with at least theportion of the information received from the second computing device.Identifying in real-time the discrepancy may include identifying inreal-time the discrepancy based upon, at least in part, one or morereceived user options. Correcting in real-time at least the portion ofthe discrepancy may include sending, to the second computing device, areplayable file that includes at least the portion of the discrepancy.Correcting in real-time at least the portion of the discrepancy mayinclude correcting in real-time at least the portion of the discrepancybased upon, at least in part, one or more received user options.Instructions may further be included for determining that at least theportion of the information from a user is received at the secondcomputing device. Instructions may further be included fore identifyingthe user and a time when at least the portion of the information isreceived from the user may be displayed in response to thedetermination. Correcting in real-time at least the portion of thediscrepancy may include receiving a selection of the displayedidentification of the user.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features andadvantages will become apparent from the description, the drawings, andthe claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustrative diagrammatic view of a correction processcoupled to a distributed computing network according to one or moreembodiments of the present disclosure;

FIG. 2 is a diagrammatic view of the client computer of FIG. 1 accordingto one or more embodiments of the present disclosure;

FIG. 3 is an illustrative flowchart of the correction process of FIG. 1according to one or more embodiments of the present disclosure;

FIG. 4 is an illustrative flowchart for sending information according toone or more embodiments of the present disclosure;

FIG. 5 is an illustrative flowchart for sending information according toone or more embodiments of the present disclosure

FIG. 6 is an illustrative flowchart for sending information according toone or more embodiments of the present disclosure;

FIG. 7 is an illustrative diagrammatic view of a screen image displayedby the correction process of FIG. 1 according to one or more embodimentsof the present disclosure;

FIG. 8 is an illustrative diagrammatic view of a screen image displayedby the correction process of FIG. 1 according to one or more embodimentsof the present disclosure;

FIG. 9 is an illustrative diagrammatic view of a screen image displayedby the correction process of FIG. 1 according to one or more embodimentsof the present disclosure; and

FIG. 10 is an illustrative diagrammatic view of a screen image displayedby the correction process of FIG. 1 according to one or more embodimentsof the present disclosure.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION OF THE EMBODIMENTS System Overview

As will be appreciated by one skilled in the art, the present disclosuremay be embodied as a method, system, or computer program product.Accordingly, the present disclosure may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.” Furthermore,the present disclosure may take the form of a computer program producton a computer-usable storage medium having computer-usable program codeembodied in the medium.

Any suitable computer usable or computer readable medium may beutilized. Te computer readable medium may be a computer readable signalmedium or a computer readable storage medium. The computer-usable, orcomputer-readable, storage medium (including a storage device associatedwith a computing device or client electronic device) may be, forexample, but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, device,or any suitable combination of the foregoing. More specific examples (anon-exhaustive list) of the computer-readable medium may include thefollowing: an electrical connection having one or more wires, a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), an optical fiber, a portable compact disc read-onlymemory (CD-ROM), an optical storage device, a media such as thosesupporting the internet or an intranet, or a magnetic storage device.Note that the computer-usable or computer-readable medium could even bea suitable medium upon which the program is stored, scanned, compiled,interpreted, or otherwise processed in a suitable manner, if necessary,and then stored in a computer memory. In the context of this document, acomputer-usable or computer-readable, storage medium may be any tangiblemedium that can contain or store a program for use by or in connectionwith the instruction execution system, apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Thecomputer readable program code may be transmitted using any appropriatemedium, including but not limited to the internet, wireline, opticalfiber cable, RF, etc. A computer readable signal medium may be anycomputer readable medium that is not a computer readable storage mediumand that can communicate, propagate, or transport a program for use byor in connection with an instruction execution system, apparatus, ordevice.

Computer program code for carrying out operations of the presentdisclosure may be written in an object oriented programming languagesuch as Java®, Smalltalk, C++ or the like. Java and all Java-basedtrademarks and logos are trademarks or registered trademarks of Oracleand/or its affiliates. However, the computer program code for carryingout operations of the present disclosure may also be written inconventional procedural programming languages, such as the “C”programming language, PASCAL, or similar programming languages, as wellas in scripting languages such as Javascript or PERL. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the internet using an Internet ServiceProvider).

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof apparatus (systems), methods and computer program products accordingto various embodiments of the present disclosure. It will be understoodthat each block in the flowchart and/or block diagrams, and combinationsof blocks in the flowchart and/or block diagrams, may represent amodule, segment, or portion of code, which comprises one or moreexecutable computer program instructions for implementing the specifiedlogical function(s)/act(s). These computer program instructions may beprovided to a processor of a general purpose computer, special purposecomputer, or other programmable data processing apparatus to produce amachine, such that the computer program instructions, which may executevia the processor of the computer or other programmable data processingapparatus, create the ability to implement one or more of thefunctions/acts specified in the flowchart and/or block diagram block orblocks or combinations thereof. It should be noted that, in somealternative implementations, the functions noted in the block(s) mayoccur out of the order noted in the figures. For example, two blocksshown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meanswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks or combinations thereof.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed (not necessarily in a particularorder) on the computer or other programmable apparatus to produce acomputer implemented process such that the instructions which execute onthe computer or other programmable apparatus provide steps forimplementing the functions/acts (not necessarily in a particular order)specified in the flowchart and/or block diagram block or blocks orcombinations thereof.

Referring to FIG. 1, there is shown correction process 10 that mayreside on and may be executed by a computer (e.g., client computer 12),which may be connected to a network (e.g., network 14) (e.g., theinternet or a local area network). Examples of client computer 12 mayinclude, but are not limited to, a personal computer(s), a laptopcomputer(s), mobile computing device(s), a (e.g., central) servercomputer, a series of server computers, a mainframe computer(s), or acomputing cloud(s). Client computer 12 may execute an operating system,for example, but not limited to Microsoft® Windows®; Mac® OS X®; RedHat®; Linux®, or a custom operating system, for example. (Microsoft andWindows are registered trademarks of Microsoft Corporation in the UnitedStates, other countries or both; Mac and OS X registered trademarks ofApple Inc. in the United States, other countries or both; Red Hat is aregistered trademark of Red Hat Corporation in the United States, othercountries or both; and Linux is a registered trademark of Linus Torvaldsin the United States, other countries or both).

As will be discussed below in greater detail, correction process 10 mayreceive information (e.g., information 17) from a first computingdevice. The information may include digital audio data (or video data,other types of data, or combination thereof) that may be sent to asecond computing device by, e.g., the first computing device. Theinformation may be received, e.g., by correction process 10 from thesecond computing device. A discrepancy between at least a portion of theinformation sent by the first computing device and at least a portion ofthe information received from the second computing device may beidentified in “real-time” (e.g., which as can be appreciated by thoseskilled in the art may include near (or substantially near) real-timewith some contemplated degree of delay, due to, e.g., latency ornetwork/device induced delay, intentional delay for design purposes,etc.). At least a portion of the discrepancy may be corrected inreal-time for replaying at least the portion of the discrepancy at thesecond computing device.

The instruction sets and subroutines of correction process 10, which maybe stored on storage device 16 coupled to client computer 12, may beexecuted by one or more processors (not shown) and one or more memoryarchitectures (not shown) included within client computer 12. Storagedevice 16 may include but is not limited to: a hard disk drive; a flashdrive, a tape drive; an optical drive; a RAID array; a random accessmemory (RAM); and a read-only memory (ROM).

Network 14 may be connected to one or more secondary networks (e.g.,network 18), examples of which may include but are not limited to: alocal area network; a wide area network; or an intranet, for example.

Client computer 12 may execute a collaboration application (e.g.,collaboration application 20), examples of which may include, but arenot limited to, e.g., a web conferencing application, a videoconferencing application, a voice-over-IP application, or otherapplication and/or digital voice system application that allows forvirtual meeting and/or remote collaboration (e.g., through a centralserver or otherwise). Correction process 10 and/or collaborationapplication 20 may be accessed via client applications 22, 24, 26, 28.Correction process 10 may be a stand alone application, or may be anapplet/application/script that may interact with and/or be executedwithin collaboration application 20. Examples of client applications 22,24, 26, 28 may include but are not limited to a web conferencingapplication, video conferencing application, voice-over-IP application,or other application that allow for virtual meeting and/or remotecollaboration, a standard and/or mobile web browser, an email clientapplication, a textual and/or a graphical user interface, a customizedweb browser, a plugin, or a custom application. The instruction sets andsubroutines of client applications 22, 24, 26, 28, which may be storedon storage devices 30, 32, 34, 36 coupled to client electronic devices38, 40, 42, 44, may be executed by one or more processors (not shown)and one or more memory architectures (not shown) incorporated intoclient electronic devices 38, 40, 42, 44.

Storage devices 30, 32, 34, 36 may include but are not limited to: harddisk drives; flash drives, tape drives; optical drives; RAID arrays;random access memories (RAM); and read-only memories (ROM). Examples ofclient electronic devices 38, 40, 42, 44 may include, but are notlimited to, a personal computer (e.g., client electronic device 38), alaptop computer (e.g., client electronic device 40), a smart phone(e.g., client electronic device 42), a notebook computer (e.g., clientelectronic device 44), a tablet (not shown), a server (not shown), adata-enabled, cellular telephone (not shown), a television (e.g., smarttelevision) (not shown), and a dedicated network device (not shown).Client electronic devices 38, 40, 42, 44 may each execute an operatingsystem, examples of which may include but are not limited to Android™,Apple® iOS®, Mac® OS X®; Red Hat® Linux®, or a custom operating system.

One or more of client applications 22, 24, 26, 28 may be configured toeffectuate some or all of the functionality of correction process 10(and vice versa). Accordingly, correction process 10 may be a purelyserver-side application, a purely client-side application, or a hybridserver-side/client-side application that is cooperatively executed byone or more of client applications 22, 24, 26, 28 and correction process10.

One or more of client applications 22, 24, 26, 28 may be configured toeffectuate some or all of the functionality of collaboration application20 (and vice versa). Accordingly, collaboration application 20 may be apurely server-side application, a purely client-side application, or ahybrid server-side/client-side application that is cooperativelyexecuted by one or more of client applications 22, 24, 26, 28 andcollaboration application 20.

Users 46, 48, 50, 52 may access client computer 12 and correctionprocess 10 directly through network 14 or through secondary network 18.Further, client computer 12 may be connected to network 14 throughsecondary network 18, as illustrated with phantom link line 54.Correction process 10 may include one or more user interfaces, such asbrowsers and textual or graphical user interfaces, through which users46, 48, 50, 52 may access correction process 10.

The various client electronic devices may be directly or indirectlycoupled to network 14 (or network 18). For example, client electronicdevice 38 is shown directly coupled to network 14 via a hardwirednetwork connection. Further, client electronic device 44 is showndirectly coupled to network 18 via a hardwired network connection.Client electronic device 40 is shown wirelessly coupled to network 14via wireless communication channel 56 established between clientelectronic device 40 and wireless access point (i.e., WAP) 58, which isshown directly coupled to network 14. WAP 58 may be, for example, anIEEE 802.11a, 802.11b, 802.11g, Wi-Fi, and/or Bluetooth™ device that iscapable of establishing wireless communication channel 56 between clientelectronic device 40 and WAP 58. Client electronic device 42 is shownwirelessly coupled to network 14 via wireless communication channel 60established between client electronic device 42 and cellularnetwork/bridge 62, which is shown directly coupled to network 14.

As is known in the art, all of the IEEE 802.11x specifications may useEthernet protocol and carrier sense multiple access with collisionavoidance (i.e., CSMA/CA) for path sharing. The various 802.11xspecifications may use phase-shift keying (i.e., PSK) modulation orcomplementary code keying (i.e., CCK) modulation, for example. As isknown in the art, Bluetooth™ is a telecommunications industryspecification that allows, e.g., mobile phones, computers, smart phones,and other electronic devices to be interconnected using a short-rangewireless connection.

Referring also to FIG. 2, there is shown a diagrammatic view of clientcomputer 12. While client computer 12 is shown in this figure, this isfor illustrative purposes only and is not intended to be a limitation ofthis disclosure, as other configuration are possible. For example, anycomputing device capable of executing, in whole or in part, correctionprocess 10 may be substituted for client computer 12 within FIG. 2,examples of which may include but are not limited to client electronicdevices 28, 30, 32, 34.

Client computer 12 may include a processor and/or microprocessor (e.g.,microprocessor 200) configured to, e.g., process data and execute theabove-noted code/instruction sets and subroutines of correction process10. Microprocessor 200 may be coupled via a storage adaptor (not shown)to the above-noted storage device 16. An I/O controller (e.g., I/Ocontroller 202) may be configured to couple microprocessor 200 withvarious devices, such as keyboard 206, pointing/selecting device (e.g.,mouse 208), USB ports (not shown), and printer ports (not shown). Adisplay adaptor (e.g., display adaptor 210) may be configured to coupledisplay 212 (e.g., CRT or LCD monitor(s)) with microprocessor 200, whilenetwork controller/adaptor 214 (e.g., an Ethernet adaptor) may beconfigured to couple microprocessor 200 to the above-noted network 14(e.g., the Internet or a local area network).

The Correction Process:

As discussed above and referring also to FIGS. 3-10, correction process10 may receive 300 information from a first computing device. Theinformation may include digital audio data that may be sent to, e.g., asecond computing device from, e.g., the first computing device. Theinformation may be received 302 from the second computing device. Adiscrepancy between at least a portion of the information sent by thefirst computing device and at least a portion of the informationreceived from the second computing device may be identified 304 inreal-time. At least a portion of the discrepancy may be corrected 306 inreal-time for replaying at least the portion of the discrepancy at thesecond computing device.

As noted above, correction process 10 may receive 300 information (e.g.,information 17) from a first computing device (e.g., client electronicdevice 38). Information 17 may include digital audio data that may besent to a second computing device (e.g., client electronic device 44),e.g., by client electronic device 38. For instance, assume for examplepurposes only that using any combination of client application 22,client application 28, collaboration application 20, and correctionprocess 10, a first user (e.g., user 46) is speaking or otherwisecommunicating via client electronic device 38 with a second user (e.g.,user 52) via client electronic device 44. In the example, information 17may contain at least some of the audio (e.g., digital audio data)captured from user 46 by, e.g., a microphone, of client electronicdevice 38. Further in the example, and referring at least to FIG. 4,correction process 10, e.g., via client computer 12, may receive 300information 17 from client electronic device 38. Correction process 10may subsequently send information 17 from client computer 12 to clientelectronic device 44 to be heard, e.g., through speakers (not shown), byuser 52.

In some embodiments, correction process 10 may receive 302 information17 from the second client electronic device 44. For instance, continuingwith the above example, further assume a communications environmentwithout any loss of quality such that information 17 sent from clientelectronic device 38 is identical to the information eventually receivedby client computer 12. In the example, the same information 17 then sentfrom client computer 12 and received by client electronic device 44(e.g., and user 55) may then be sent back to, e.g., client computer 12,and received 302 via correction process 10.

In some embodiments, however, the communications environment may be suchthat somewhere there is some perceived loss or lack of quality ofinformation 17 due to, e.g., latency, packet loss, noise, hardware andsoftware quality issues. For example, and still referring at least toFIG. 4, information 17 may have no loss of quality when correctionprocess 10 receives 300 information 17 via client computer 12. Furtherin the example, information 17 may incur some loss of quality at somepoint (e.g., before, during, or after) when correction process 10, e.g.,via client computer 12, sends information 17 to client electronic device44. In the example, information 17 with a loss of quality isillustratively labeled as information 17 x. Continuing with the example,since information 17 x is sent by correction process 10 via clientcomputer 12 to client electronic device 44 (e.g., and user 55), thencorrection process 10 may receive 302 information 17 x sent from clientelectronic device 44. In some embodiments, the loss of quality ofinformation 17 may occur elsewhere (e.g., due to hardware and/orsoftware issues on client electronic device 44 after client electronicdevice 44 has received information 17 from client computer 12).

In some embodiments, correction process 10, e.g., via client computer12, client electronic device 38, and client electronic device 44, maygain connection information in a handshake that permits the sending andreceiving of information 17. The handshake may be implemented at anytime, or, e.g., when correction process 10, e.g., via client computer12, client electronic device 38, and client electronic device 44identify 304 a discrepancy in information 17 as discussed further below.Additionally/alternatively, the handshake may be implemented in responseto user interaction (e.g., explicitly or manually requesting acorrection for replay of information 17 as will be discussed furtherbelow).

While some embodiments are described with information 17 (or 17 x) beingsent by client electronic device 38, received 300 by client computer 12,and then sent from client computer 12 to client electronic device 44,those skilled in the art will appreciate that other implementations mayexist. For example, and referring at least to FIG. 5, client electronicdevice 44 may receive information 17 (or 17 x) sent by client electronicdevice 38 “directly” (e.g., bypassing client computer 12 and/or via oneor more intermediary computing devices other than client computer 12).As such, the description of information 17 (or 17 x) being sent byclient electronic device 38, received 300 by client computer 12, andthen sent from client computer 12 to client electronic device 44 shouldbe taken as an example only and not to otherwise limit the scope of thedisclosure.

In some embodiments, and referring again at least to FIG. 4, adiscrepancy between at least a portion of information 17 received 300from client electronic device 38 and at least a portion of information17 x received 302 from client electronic device 44 may be identified 304by correction process 10 in real-time. For example, correction process10 may dynamically identify 304 the discrepancy between information 17received 300 from and/or sent by client electronic device 38 andinformation 17 x received 302 from client electronic device 44 duringthe communication session with client electronic device 38 and clientelectronic device 44 where user 52 receives information 17 x.

In some embodiments, correction process 10 may dynamically identify 304the discrepancy between information 17 received 300 from and/or sent byclient electronic device 38 and information 17 x received 302 fromclient electronic device 44 by comparing 308 at least the portion ofinformation 17 received 300 from and/or sent by client electronic device38 with at least the portion of information 17 x received 302 fromclient electronic device 44. For example, correction process 10 may,e.g., via client computer 12, compare 308 information 17 received 300from and/or sent by client electronic device 38 with information 17 xreceived 302 from client electronic device 44. Such a comparison may beaccomplished leveraging, e.g., Perceptual Evaluation of Speech Quality(PESQ) standards. In some embodiments, if information 17 received 300from and/or sent by client electronic device 38 is not identical withinformation 17 x received 302 from client electronic device 44,correction process 10 may identify 304 the discrepancy betweeninformation 17 and information 17 x.

Additionally/alternatively, the discrepancy need not be identified 304by correction process 10 comparing 308 information 17 with information17 x. For instance, assume for example purposes only that there is noloss of quality of information 17 at any point between what is capturedat client electronic device 38, received at client computer 12, andreceived at client electronic device 44. In the example, without a lossof quality of information 17, a comparison 308 of information 17received 300 from and/or sent by client electronic device 38 withinformation 17 received 302 from client electronic device 44 may beidentical. However, further assume that user 46 is new to the Englishlanguage and has a thick foreign accent. The thick accent may make itdifficult for user 52 to understand what is being said by user 46. Thus,in some embodiments, the communications environment may be such that thediscrepancy may be due to some perceived loss or lack of quality ofinformation 17 in user 52's comprehension of information 17, e.g., fromthe speakers of client electronic device 44 due to, e.g., user listeningeffort, user accents, and user expectations, rather than a discrepancybetween information 17 being captured (e.g., originated) at clientelectronic device 38 and information 17 eventually being received byclient electronic device 44 (e.g., via client computer 12). In someembodiments, correction process 10 may include well-known applications(e.g., transcription applications) that may indicate when information 17may be difficult to understand (and therefore identify 304 a possiblediscrepancy in user comprehension) even if there is no loss of qualityof information 17.

In some embodiments, correction process 10 may dynamically identify 310the discrepancy (e.g., miscomprehension of information 17) based upon,at least in part, one or more received user options. For example, andcontinuing with the above example where the discrepancy is in user 52'scomprehension of information 17, correction process 10 may render awindow (e.g., window 700) via a user interface on, e.g., clientelectronic device 44. In some embodiments, window 700 may includeselectable user options, such as, e.g., time 702, which may indicate,e.g., how much to correct 306 for replay, how many sentences to correct306 for replay, etc. For instance, if a live conversation has beenongoing for, e.g., 30 seconds, and without any loss of quality ininformation 10, user 52 did not understand what was just said by user46. In the example, user 52 may via curser 704 select time 702 (e.g., 5seconds). As such, correction process 10 may receive the 5 second timeselection, identify 310 the discrepancy based upon, at least in part,the received selection, and correct 306 for replay the most recent 5second portion of the conversation (i.e., seconds 25-30).

In some embodiments, and continuing with the above example, window 700may include selectable user options, such as, e.g., speaker 706, whichmay indicate which speaker user 52 wishes to correct 306 for replay. Forinstance, if a live conversation includes users 46, 48, 50, and 52, user52 may via curser 704 select speaker 706 (e.g., user 46). As such,correction process 10 may receive the 5 second time selection, identify310 the discrepancy based upon, at least in part, the receivedselection, receive the user 46 speaker selection, and correct 306 forreplay, e.g., the most recent 5 seconds of conversation by user 46.

In some embodiments, and continuing with the above example, window 700may include selectable user options, such as, e.g., replay to 708, whichmay indicate to which user that user 52 wishes to correct for replay theconversation. For instance, if a live conversation includes users 46,48, 50, and 52, user 52 may via curser 704 select replay to 708 asub-set of those participating in the conversation (e.g., user 48). Assuch, correction process 10 may receive the 5 seconds time selection,identify 310 the discrepancy based upon, at least in part, the receiveselection, receive the user 46 speaker selection, receive the replay touser 48 and user 52 selection, and correct 306 for replay, e.g., themost recent 5 seconds of conversation by user 46 to user 48 and user 52.

In some embodiments, time 702, speaker 706, and replay to 708 may bepre-selected by user 52 and/or correction process 10 as a defaultselection, such that correction process 10 may receive a selection ofreplay 710 to correct 306 for replay the appropriate sections of theconversation of information 17 without user 52 individually selectingtime 702, speaker 706, and replay to 708. Additionally/alternatively,correction process 10 may make selecting time 702, speaker 706, andreplay to 708 unavailable until a discrepancy is identified 304. Thoseskilled in the art will appreciate that other selectable user options,such as organizational positions (e.g., position 712) may also be used.For instance, continuing with the above example, correction process 10may receive the 5 seconds time selection, identify 310 the discrepancybased upon, at least in part, the receive selection, receive the managerspeaker selection, receive the replay to user 48 and user 52 selection,and correct 306 for replay, e.g., the most recent 5 seconds ofconversation by the manager to user 48 and user 52.

In some embodiments, correction process 10 may dynamically identify 310the discrepancy (e.g., loss of quality of information 17) based upon, atleast in part, one or more of the above-noted received user options. Insome embodiments, window 700 may be rendered before the discrepancy isidentified 304 (e.g., when client application 28 is executed), or may berendered when the discrepancy is identified 304 (e.g., via a pop-upwindow as window 700) as a notification to user 52.

At least a portion of the discrepancy may be corrected 306 by correctionprocess 10 in real-time for replaying at least the portion of thediscrepancy at client electronic device 44. For instance, assume forexample purposes only that information 17 should have been received byuser 52; however, due to a loss of quality of information 17,information 17 x was received instead. In the example, correctionprocess 10 may correct 306 information 17 x such that the information asintended (i.e., as information 17) is able to be replayed, e.g., viacorrection process 10, at client electronic device 44.

In some embodiments, correcting 306 in real-time at least the portion ofthe discrepancy may include correction process 10 sending 312, to clientelectronic device 44, a replayable file that includes at least theportion of the discrepancy. For instance, continue with the aboveexample where information 17 should have been received by user 52;however, due to a loss of quality of information 17, information 17 xwas received instead. In the example, correction process 10 may send 312to client electronic device 44 a replayable file that contains at leastthe portion of information 17 that has been identified 304 as containingthe discrepancy. The replayable file may be sent by, e.g., clientelectronic device 38 and/or client computer 12. In some embodiments, thereplayable file may be sent from another client electronic device thatmay have received information 17 without the loss of quality ofinformation 17, and which is more “network-proximate” to clientelectronic device 44 than client computer 12 and/or client electronicdevice 38. In the embodiment, correction process 10 may automaticallydetect one or more client electronic devices and their network-proximityto client electronic device 44 and select the best choice (e.g., bestpath) for which client electronic device would provide the replayablefile to client electronic device 44 in the fastest time. Once received,correction process 10 via client electronic device 44 may correct 306for replay the file.

In some embodiments, correcting 306 in real-time at least the portion ofthe discrepancy may include correcting 314 in real-time at least theportion of the discrepancy based upon, at least in part, one or morereceived user options. For example, in some embodiments, window 700 mayinclude selectable user options, such as, e.g., replay execution 900,which may indicate how information is to be corrected 306 for replay.For instance, user 52 may via curser 704 select replay execution 900(e.g., voice over). As such, correction process 10 may receive the voiceover selection and correct 306 for replay at client electronic device 44at least the portion of information 17 containing the discrepancy at alower volume simultaneously to the ongoing conversation.

In some embodiments, user 52 may via curser 704 select replay execution900 (e.g., mute). As such, correction process 10 may receive the muteselection and correct 306 for replay at client electronic device 44 atleast the portion of information 17 containing the discrepancy whilemuting the ongoing conversation. In some embodiments, the muted portionof the ongoing conversation may then be identified 304 by correctionprocess 10 as having a discrepancy.

In some embodiments, user 52 may via curser 704 select replay execution900 (e.g., save). As such, correction process 10 may receive the saveselection and save any portion of the conversation (e.g., locally orremotely) and then correct 306 for replay at client electronic device 44the saved portion at a later time (e.g., after the conversation ends).

In some embodiments, correction process 10 may determine 316 that atleast the portion of information 17 from a user is received at clientelectronic device 44. For example, correction process 10 may determine316 that information 17 (or 17 x) contains the voice information fromuser 46, since user 46 may have been speaking. In the example,correction process 10 may display 318 the identification of user 46 anda time (e.g., during the conversation, local time, etc.) when the voiceinformation is received from user 46 in response to the determination316. For instance, correction process 10 may render a window (e.g.,window 1000). Window 1000 may render an identification that user 46 istalking.

Correcting 306 by process 10 in real-time at least the portion of thediscrepancy may include receiving 320 a selection of the displayedidentification of the user. For example, user 52 may via curser 704select user 46 from window 1000. As such, correction process 10 mayreceive 320 the user 46 selection and correct 306 for replay at clientelectronic device 44 at least a portion of information 17 as discussedabove.

In some embodiments, receiving 320 the selection of user 46 from window1000 may cause correction process 10 to render another window (e.g.,pop-up window 1002), which may provide other user options. For example,user 52 may via curser 704 select statistics 1004. Correction process 10may receive the selection of statistics 1004 and provide statistics touser 52 (e.g., via another pop-up window, email, etc.) pertaining tosuch things as, e.g., how many times a call was placed to/from user 52and user 46 respectively, and how many times a specific word was used.Other selectable user options (not shown) may include, e.g., storinginformation 17 (or 17 x) locally and/or remotely depending on who isparticipating in the call, who is speaking at a particular moment,and/or the time of the call, default settings of transcript ofinformation 17 to text or voice data (e.g., which may be used withinstant messaging, email, write-to-file, etc.), where to save anytranscripts of information 17 (e.g., a central computer such as clientcomputer 12 rather than client electronic devices 38 and 44),limitations on how much of information 17 may be stored on clientcomputer 12 and/or client electronic devices 38 and 44 (e.g., based onthe size of the conversation and/or number of conversations), whichpolicies to set for client electronic devices 38 and 44, and reportstatistics (e.g., what is being saved and by whom).

In some embodiments, user 52 may via curser 704 select auto-save 1006.Correction process 10 may receive the selection of auto-save 1006 andpermit (e.g., via a drop down menu (not shown) or another window (notshown)) user 52 to automatically save certain portions of information 17(e.g., via client computer 12 and/or client electronic device 44) basedupon, e.g., the subject of the conversation, the users involved, etc.).

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the disclosure.As used herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps (not necessarily in aparticular order), operations, elements, and/or components, but do notpreclude the presence or addition of one or more other features,integers, steps (not necessarily in a particular order), operations,elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present disclosure has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the disclosure in the form disclosed. Many modifications,variations, and any combinations thereof will be apparent to those ofordinary skill in the art without departing from the scope and spirit ofthe disclosure. The embodiment(s) were chosen and described in order tobest explain the principles of the disclosure and the practicalapplication, and to enable others of ordinary skill in the art tounderstand the disclosure for various embodiment(s) with variousmodifications and/or any combinations of embodiment(s) as are suited tothe particular use contemplated.

Having thus described the disclosure of the present application indetail and by reference to embodiment(s) thereof, it will be apparentthat modifications, variations, and any combinations of embodiment(s)(including any modifications, variations, and combinations thereof) arepossible without departing from the scope of the disclosure defined inthe appended claims.

What is claimed is:
 1. A computer-implemented method comprising:receiving information from a first computing device, the informationincluding digital audio data, the information sent to a second computingdevice by the first computing device; receiving the information from thesecond computing device; identifying in real-time a discrepancy betweenat least a portion of the information sent by the first computing deviceand at least a portion of the information received from the secondcomputing device; and correcting in real-time at least a portion of thediscrepancy for replaying, at the second computing device, at least theportion of the discrepancy.
 2. The computer-implemented method of claim1 wherein identifying in real-time the discrepancy includes comparing atleast the portion of the information sent by the first computing devicewith at least the portion of the information received from the secondcomputing device.
 3. The computer-implemented method of claim 1 whereincorrecting in real-time at least the portion of the discrepancy includessending, to the second computing device, a replayable file that includesat least the portion of the discrepancy.
 4. The computer-implementedmethod of claim 1 wherein identifying in real-time the discrepancyincludes identifying in real-time the discrepancy based upon, at leastin part, one or more received user options.
 5. The computer-implementedmethod of claim 1 wherein correcting in real-time at least the portionof the discrepancy includes correcting in real-time at least the portionof the discrepancy based upon, at least in part, one or more receiveduser options.
 6. The computer-implemented method of claim 1 furthercomprising: determining that at least the portion of the informationfrom a user is received at the second computing device; and displayingan identification of the user and a time when at least the portion ofthe information is received from the user in response to thedetermination.
 7. The computer-implemented method of claim 6 whereincorrecting in real-time at least the portion of the discrepancy includesreceiving a selection of the displayed identification of the user.
 8. Acomputer program product residing on a computer readable storage mediumhaving a plurality of instructions stored thereon which, when executedby a processor, cause the processor to perform operations comprising:receiving information from a first computing device, the informationincluding digital audio data, the information sent to a second computingdevice by the first computing device; receiving the information from thesecond computing device; identifying in real-time a discrepancy betweenat least a portion of the information sent by the first computing deviceand at least a portion of the information received from the secondcomputing device; and correcting in real-time at least a portion of thediscrepancy for replaying, at the second computing device, at least theportion of the discrepancy.
 9. The computer program product of claim 8wherein identifying in real-time the discrepancy includes comparing atleast the portion of the information sent by the first computing devicewith at least the portion of the information received from the secondcomputing device.
 10. The computer program product of claim 8 whereincorrecting in real-time at least the portion of the discrepancy includessending, to the second computing device, a replayable file that includesat least the portion of the discrepancy.
 11. The computer programproduct of claim 8 wherein identifying in real-time the discrepancyincludes identifying in real-time the discrepancy based upon, at leastin part, one or more received user options.
 12. The computer programproduct of claim 8 wherein correcting in real-time at least the portionof the discrepancy includes correcting in real-time at least the portionof the discrepancy based upon, at least in part, one or more receiveduser options.
 13. The computer program product of claim 8 wherein theoperations further comprise: determining that at least the portion ofthe information from a user is received at the second computing device;and displaying an identification of the user and a time when at leastthe portion of the information is received from the user in response tothe determination.
 14. The computer program product of claim 13 whereincorrecting in real-time at least the portion of the discrepancy includesreceiving a selection of the displayed identification of the user.
 15. Acomputing system including a processor and memory configured to performoperations comprising: receiving information from a first computingdevice, the information including digital audio data, the informationsent to a second computing device by the first computing device;receiving the information from the second computing device; identifyingin real-time a discrepancy between at least a portion of the informationsent by the first computing device and at least a portion of theinformation received from the second computing device; and correcting inreal-time at least a portion of the discrepancy for replaying, at thesecond computing device, at least the portion of the discrepancy. 16.The computing system of claim 15 wherein identifying in real-time thediscrepancy includes comparing at least the portion of the informationsent by the first computing device with at least the portion of theinformation received from the second computing device.
 17. The computingsystem of claim 15 wherein correcting in real-time at least the portionof the discrepancy includes sending, to the second computing device, areplayable file that includes at least the portion of the discrepancy.18. The computing system of claim 15 wherein identifying in real-timethe discrepancy includes identifying in real-time the discrepancy basedupon, at least in part, one or more received user options.
 19. Thecomputing system of claim 15 wherein correcting in real-time at leastthe portion of the discrepancy includes correcting in real-time at leastthe portion of the discrepancy based upon, at least in part, one or morereceived user options.
 20. The computing system of claim 15 wherein theoperations further comprise: determining that at least the portion ofthe information from a user is received at the second computing device;and displaying an identification of the user and a time when at leastthe portion of the information is received from the user in response tothe determination.
 21. The computing system of claim 20 whereincorrecting in real-time at least the portion of the discrepancy includesreceiving a selection of the displayed identification of the user.